76 uint16_t ADC_Result[64];
79 WDT_A_hold(WDT_A_BASE);
88 ADC10_A_init(ADC10_A_BASE,
89 ADC10_A_SAMPLEHOLDSOURCE_SC,
90 ADC10_A_CLOCKSOURCE_ADC10OSC,
91 ADC10_A_CLOCKDIVIDER_1);
93 ADC10_A_enable(ADC10_A_BASE);
100 ADC10_A_setupSamplingTimer(ADC10_A_BASE,
101 ADC10_A_CYCLEHOLD_16_CYCLES,
102 ADC10_A_MULTIPLESAMPLESENABLE);
111 ADC10_A_configureMemory(ADC10_A_BASE,
113 ADC10_A_VREFPOS_AVCC,
114 ADC10_A_VREFNEG_AVSS);
126 DMA_initParam
param = {0};
127 param.channelSelect = DMA_CHANNEL_0;
128 param.transferModeSelect = DMA_TRANSFER_REPEATED_SINGLE;
129 param.transferSize = 2;
130 param.triggerSourceSelect = DMA_TRIGGERSOURCE_24;
131 param.transferUnitSelect = DMA_SIZE_SRCWORD_DSTWORD;
132 param.triggerTypeSelect = DMA_TRIGGER_RISINGEDGE;
140 DMA_setSrcAddress(DMA_CHANNEL_0,
141 ADC10_A_getMemoryAddressForDMA(ADC10_A_BASE),
142 DMA_DIRECTION_UNCHANGED);
145 DMA_clearInterrupt(DMA_CHANNEL_0);
146 DMA_enableInterrupt(DMA_CHANNEL_0);
149 DMA_enableTransfers(DMA_CHANNEL_0);
153 for (
i = 0;
i < 32;
i++)
161 DMA_setDstAddress(DMA_CHANNEL_0,
162 (uint32_t)(uintptr_t)&ADC_Result[
i * 2],
163 DMA_DIRECTION_INCREMENT);
166 while (ADC10_A_isBusy(ADC10_A_BASE)) ;
170 ADC10_A_startConversion(ADC10_A_BASE,
171 ADC10_A_REPEATED_SEQOFCHANNELS);
174 __bis_SR_register(CPUOFF + GIE);
185 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
187 #elif defined(__GNUC__)
188 __attribute__((interrupt(DMA_VECTOR)))
191 switch (__even_in_range(DMAIV,16)){
196 ADC10_A_disableConversions(ADC10_A_BASE, ADC10_A_PREEMPTCONVERSION);
MPU_initThreeSegmentsParam param
__bic_SR_register_on_exit(LPM3_bits|GIE)